package h0730;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.StringJoiner;

/**
  * @description 使用连续自然数之和表达整数
  * @author 不知名帅哥
  * @date 2024/7/30 12:41
  * @version 1.0
*/
public class ExpressNumWithNaturalNumbers {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n = sc.nextInt();

        List<List<Integer>> res = getRes(n);
        for (int i = 0; i < res.size(); i++) {
            StringJoiner joiner=new StringJoiner("+");
            for (int j = 0; j < res.get(i).size(); j++) {
                joiner.add(res.get(i).get(j)+"");
            }
            System.out.println(n+"="+joiner);
        }
        System.out.println("Result:"+res.size());
    }

    //使用等差数列的前n项和
    private static List<List<Integer>> getRes(int n) {
        List<List<Integer>> res=new ArrayList<>();
        //n*a1+(n(n-1))/2
        for (int i = 1; i <n ; i++) {
            int a1=(n-(i*(i-1))/2)/i;
            if (a1<=0) return res;
            if (a1*i+i*(i-1)/2==n){
                List<Integer> list=new ArrayList<>();
                for (int j = 0; j < i; j++) {
                    list.add(a1);
                    a1++;
                }
                res.add(list);
            }
        }
        return res;
    }
}
